Order Processing System, Method and Program Product

ABSTRACT

An order processing system, method, and program product that generates an order receipt based on an order request. The system, method, and program product include a plurality of request handlers for processing different types of order requests. One of the plurality of request handlers is selected to process the order request based on the type of order request. Once processing is complete, an order receipt is generated.

TECHNICAL FIELD

The current application claims the benefit of co-pending U.S.application No. 10/286,291, titled “Order Processing System, Method andProgram Product,” which was filed on Oct. 31, 2002, and which is herebyincorporated by reference.

The current invention relates to electronic order processing. Inparticular, this invention provides an order processing system, method,and program product for processing a plurality of order request typesusing one of a plurality of request handlers.

BACKGROUND ART

Electronic financial transactions are becoming increasingly popular. Forexample, numerous retailers now offer web sites in which consumers canselect and purchase items that are subsequently delivered to theconsumer. The popularity of internet commercial transactions is drivenby both the increased accessibility for consumers to place orders(available 24 hours, never leave home, etc.), and the substantiallyreduced costs incurred by the retailers in maintaining an electronicpurchasing system when compared to maintaining a physical store.

Because of these benefits, various government offices and service-basedbusinesses are also increasingly seeking to implement electronictransactions. For example, many government agencies desire to offercitizens the opportunity to perform various transactions, includingmotor vehicle registration renewals, license renewals, records requests,etc. through an electronic system. These systems would beneficiallyresult in both a reduced cost of doing business for the governmentagency, and an increased satisfaction among citizens dealing withgovernment offices. However, the expertise and expense of implementingthese systems can be prohibitive. Additionally, many service providers,retailers, and government entities do not desire to obtain and verifyelectronic credit card transactions, known as payment processing.

Current implementations also lack the ability to provide ordermanagement, or do not allow the user interface to be separated from theorder management system. As a result, current systems either lack thenecessary functionality, or lack flexibility (including reusability) formany applications. Further, many systems are based on a “shopping cart”model in which the consumer selects physical items with preset prices.However, many government and service-based businesses do not fit well inthe “shopping cart” model. Therefore, these systems cannot be used toimplement transactions for these entities.

As a result, there exists a need for an order processing system in whichthe generation of an order request is performed independently from ordermanagement and payment processing functions.

SUMMARY OF THE INVENTION

The current invention provides order processing systems, methods, andprogram products that process a plurality of types of order requests.Specifically, a user creates an order request for a commercialtransaction. The order request is received by an input system that has aplurality of input handlers. Based on a protocol and/or format of theorder request, a particular input handler is selected. Specifically,each input handler is adapted to receive communications in a particularprotocol/format. Once selected, the input handler will transform/convertthe request into order data, and then forward the order data to arequest system for processing. The request system has a plurality ofrequest handlers. A particular request handler is selected based on atype of order request. Specifically, each request handler is adapted tocommunicate with a particular back end system that will process theorder data. Thus, depending on the type of order request (e.g., whichback end system is needed), a particular request handler will beselected. Once the order request has been processed, the order requestis forwarded to a receipt system that has a plurality of receipthandlers. Similar to the input system, a receipt handler is selectedbased on a particular protocol/format of the order request. Onceselected, the receipt handler generates a receipt based on the processedorder request in the protocol/format originally sent as the orderrequest. Once generated, the receipt is forwarded back to the user.

A first aspect of the invention provides an order processing system,comprising: an input system for receiving and transforming an orderrequest into order data, wherein the input system includes a pluralityof input handlers, and wherein each input handler is adapted to receiveand transform order requests having a particular format; a requestsystem for processing the order data, the request system including aplurality of request handlers, wherein each request handler processes aunique type of order request; and a receipt system for generating anorder receipt based on the processed order data, the receipt systemincluding a plurality of output handlers, wherein each output handlergenerates an order receipt having a particular format.

A second aspect of the present invention provides an order processingsystem, comprising: an input system having an input interface and aplurality of input handlers, wherein the input system is adapted toselect one of the input handlers based on information contained withinan order request received by the input interface from a user; a requestsystem in communication with the input system, wherein the requestsystem has a plurality of request handlers, and wherein the requestsystem is adapted to select one of the request handlers based on theinformation; and a receipt system in communication with the requestsystem, wherein the receipt system has a plurality of output handlersfor generating a receipt for the order request and for transmitting thereceipt to the user, and wherein the receipt system is adapted toselected one of the output handlers based on the information.

A third aspect of the invention provides a method of processing anorder, comprising: receiving an order request at an input system;selecting one of a plurality of request handlers in a request systembased on a type of the order request; processing the formatted orderrequest using the selected request handler; and generating an orderreceipt based on the processed order request at a receipt system.

A fourth aspect of the invention provides a computer program productcomprising a computer useable medium having computer readable programcode embodied therein for processing an order, the program productcomprising: program code configured to receive an order request; programcode configured to select one of a plurality of request handlers basedon a type of the order request; program code configured to process theorder request using the selected request handler; and program codeconfigured to generate an order receipt based on the processed orderrequest.

The exemplary aspects of the present invention are designed to solve theproblems herein described and other problems not discussed, which arediscoverable by a skilled artisan.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features of this invention will be more readilyunderstood from the following detailed description of the variousaspects of the invention taken in conjunction with the accompanyingdrawings in which:

FIG. 1 depicts an order processing system according to one aspect of theinvention;

FIG. 2 depicts a data flow diagram for the order processing system ofFIG. 1; and

FIG. 3 depicts an illustrative method of implementing the invention.

It is noted that the drawings of the invention are not to scale. Thedrawings are intended to depict only typical aspects of the invention,and therefore should not be considered as limiting the scope of theinvention. In the drawings, like numbering represents like elementsbetween the drawings.

DETAILED DESCRIPTION OF THE INVENTION

As indicated above, the current invention provides order processingsystems, methods, and program products that process a plurality of typesof order requests. Specifically, a user creates an order request for acommercial transaction. The order request is received by an input systemthat has a plurality of input handlers. Based on a protocol and/orformat of the order request, a particular input handler is selected.Specifically, each input handler is adapted to receive communications ina particular protocol/format. Once selected, the input handler willtransform/convert the request into order data, and then forward theorder data to a request system for processing. The request system has aplurality of request handlers. A particular request handler is selectedbased on a type of order request. Specifically, each request handler isadapted to communicate with a particular back end system that willprocess the order data. Thus, depending on the type of order request(e.g., which back end system is needed), a particular request handlerwill be selected. Once the order request has been processed, the orderrequest is forwarded to a receipt system that has a plurality of receipthandlers. Similar to the input system, a receipt handler is selectedbased on a particular protocol/format of the order request. Onceselected, the receipt handler generates a receipt based on the processedorder request in the protocol/format originally sent as the orderrequest. Once generated, the receipt is forwarded back to the user.

Turning to the figures, FIG. 1 depicts an order processing system 10according to one aspect of the invention. System 10 includes a computer12 that generally comprises central processing unit (CPU) 14, memory 16,input/output (I/O) interface 18, bus 20, I/O devices 22 and database 24.Generally, a user 25 interacts with order processing system 10 throughuser system 26. In general, user system 26 is intended to represent anytype of computerized system that can be used to access the world wideweb (e.g., workstation, laptop, personal digital assistant, etc.).Moreover, front end system 30 is intended to represent a computerizedsystem that provides access to a web site (e.g., a web server).

User system 26 and front end system 30 communicate with computer 12 byinterfacing with one or more I/O devices 22 using a network 32.Communications between user system 26, computer 12, front end system 30,and/or network 32 can occur via a direct hardwired connection (e.g.,serial port), or via an addressable connection in a client-server (orserver-server) environment which may utilize any combination of wirelineand/or wireless transmission methods. In the case of the latter, theserver and client may be connected via the Internet, a wide area network(WAN), a local area network (LAN), a virtual private network (VPN) orother private network. The server and client may utilize conventionalnetwork connectivity, such as Token Ring, Ethernet, WiFi or otherconventional communications standards. Where the client communicateswith the server via the Internet, connectivity could be provided byconventional TCP/IP sockets-based protocol. In this instance, the clientwould utilize an Internet service provider to establish connectivity tothe server. As will be further described below, accounting system 31 canbe optionally included, and can communicate with the various systems ina similar manner.

Computer 12 can comprise any general purpose or specific-use systemutilizing standard operating system software, which is designed to drivethe operation of the particular hardware and which is compatible withother system components and I/O controllers. CPU 14 may comprise asingle processing unit, multiple processing units capable of paralleloperation, or be distributed across one or more processing units in oneor more locations, e.g., on a client and server. Memory 16 may compriseany known type of data storage and/or transmission media, includingmagnetic media, optical media, random access memory (RAM), read-onlymemory (ROM), a data cache, a data object, etc. Moreover, similar to CPU14, memory 16 may reside at a single physical location, comprising oneor more types of data storage, or be distributed across a plurality ofphysical systems in various forms.

I/O interface 18 may comprise any system for exchanging information withone or more I/O devices 22, including an I/O port (serial, parallel,ethernet, keyboard, mouse, etc.), an universal serial bus (USB) port,expansion bus, integrated drive electronics (IDE), etc. I/O devices 22may comprise any known type of input/output device capable ofcommunicating with I/O interface 18 with or without additional devices(i.e., expansion cards), including a network system, a modem, speakers,a monitor (cathode-ray tube (CRT), liquid-crystal display (LCD), etc.),hand-held device, keyboard, mouse, voice recognition system, speechoutput system, scanner, printer, facsimile, pager, storage devices, etc.Bus 20 provides a communication link between each of the components incomputer 12 and likewise may comprise any known type of transmissionlink, including electrical, optical, wireless, etc. In addition,although not shown, additional components, such as cache memory,communication systems, system software, etc., may be incorporated intocomputer 12.

Database 24 may provide storage for information necessary to carry outthe present invention as described in more detail below. As such,database 24 may include one or more storage devices, such as a magneticdisk drive or an optical disk drive. Further, database 24 can includedata distributed across, for example, a LAN, WAN or a storage areanetwork (SAN) (not shown). Database 24 may also be configured in such away that one of ordinary skill in the art may interpret it to includeone or more storage devices.

It is understood that although not shown, user system 26, front endsystem 30, and accounting system 31 typically contain components (e.g.,CPU, memory, etc.) similar to computer 12. Such components have not beenseparately depicted and described for brevity purposes. These systemscan comprise any type of device capable of accepting input, providingoutput, and communicating with another device. For example, user system26 can be a mobile phone, a handheld computer, a personal digitalassistant, a portable (e.g., laptop) computer, a desktop computer, amainframe computer, etc. while front end system 30 can be a web server,etc.

Payment gateway 28 is shown stored in memory 16 as computer programcode. Payment gateway 28 includes an input system 34, a request system36, a receipt system 38, and a back end system 40. However, it isunderstood that these systems can be implemented on a single computer(as shown) or distributed across multiple computers. Additionally, whileshown as a part of payment gateway 28, back end system 40 can beimplemented as a separate system apart from payment gateway 28. Theoperation of each of these systems is described in more detail below.

FIG. 2 depicts a data flow diagram for order processing system 10.Initially, a user interacts with user system 26 which is incommunication with front end system 30 (e.g., web server) to determineorder information. Front end system 30 provides a user interface that isdisplayed by user system 26. The user then inputs order information intouser system 26, which is subsequently transmitted back to front endsystem 30. Order information can comprise any type of informationrelated to a commercial transaction. For example, order information caninclude any combination of a selection of tangible goods, a selection ofdesired services, a registration renewal, a license renewal, a totalcost, etc.

Once the entry of order information is complete, front end system 30generates an order request based on the order information and forwardsthe order request to input interface 35 of input system 34. As will befurther described below, the order request not only includestransactional information, but also format/protocol and type informationso that the order request can be processed under the present invention.It is understood that although only one front end system 30 is shown,input system 34 can actually receive order requests from multiple frontend systems 30. Moreover, front end system 30 can forward different“types” of order requests to input system 34. For example, one type oforder request can be one that requires a particular back end system forbeing processed. Alternatively, a particular type of order request canbe one that originated from a particular front end system 30. Still yet,the type of order request can be based on the type of commercialtransaction (i.e., purchase of goods/service, license renewal,registration renewal) being conducted. In any event, while all orderrequests can be required to conform to a standard format/protocol (i.e.,XML, HTML form fields, etc.), additional flexibility is provided in thatinput system 34 includes a plurality of input handlers 42. Each inputhandler 42 transforms/converts an order request having a particularformat/protocol into order data that is useable by request system 36.Thus, the use of multiple input handlers 42 allows input system 34 toreceive and process order requests in various formats/protocols.Specifically, when the order request is received by input interface 35,an appropriate input handler 42 is selected based on the format/protocolinformation in the order request. For example, if the order request isin XML, an XML-based input handler will be selected. Once selected, theXML-based input handler will transform/convert the order request intoorder data, and then forward the order data to request interface 37 ofrequest system 36 for processing.

As shown, request system 36 includes a plurality of request handlers 44.Each request handler 44 processes a unique type of order request. Thatis, based on the “type” information in an order request, an appropriaterequest handler 44 is selected and the order request is processed. Asindicated above, the type of order request can be based on manycriteria. For example, the type of order request can be based on whichback end system (e.g., management system 46 and/or payment system 48)will process the order data. For example, if back end system “A” isneeded, request handler corresponding to type “A” could be selected. Tothis extent, each request handler 44 is adapted to communicate with atleast one particular back end system for performing payment and orderprocessing. In communicating with the back end systems, request handlers44 could be required to process (e.g., convert/transform) the order datainto a format/protocol useable by the particular back end program.Moreover, although not shown, it should be understood that requesthandlers 44 could perform various transaction processing functionsthemselves.

As is further shown in FIG. 2, back end system 40 includes two programs,namely, management system 46 for managing order requests (i.e.,collecting payment information, address information, generating reports,etc.), and payment system 48 for processing payment information for theorder requests (i.e., verification of funds, implementation of EFTtransaction, etc.). It is understood that management system 46 andpayment system 48 can be implemented as separate systems or a combinedpayment and order management system. It is also understood that back endprograms such as those shown could be loaded on separate back endsystems 40.

Each request handler 44 may implement a varying amount of functionalityto properly process order requests. For example, a front end system 30can provide all the required payment information in the order request.In this case, request handler 44 verifies the payment information viaback end system 40 and returns a result of the payment verification.Alternatively, a front end system 30 can provide only an amount to bepaid and a user identification. In this case, request handler 44communicates directly with provided user system 26 based on the useridentification to retrieve payment information (e.g., credit cardinformation, electronic funds transfer information, etc. stored as acookie). Communication with user system 26 can alternatively be handledthrough input system 34 and/or receipt system 38. In any event, once thenecessary information is retrieved, request handler 44 verifies thisinformation and returns a result of the payment verification. Thisallows the collection of information and processing of the actualpayment transaction to be isolated from front end system 30.

Once processing of the order request is complete, an order verificationbased on the processed order data is sent to a receipt interface 39within receipt system 38. Receipt system 38 generates one or more orderreceipts based on the processed order data. Specifically, similar toinput system 34, once the processed order data is received by receiptinterface 39, a particular output handler 50 is selected based on aformat/protocol of the original order request. The selected outputhandler 50 then generates and communicates the receipt in the sameformat/protocol that the original order request was sent. Thus, forexample, if the original order request was received in XML, thetransmitted order receipt will also be in XML.

Upon generating an order receipt, receipt system 38 forwards the orderreceipt to front end system 30. Since front end system 30 is anothersystem, the order receipt can be provided in a manner convenient forextracting the data. However, when the order request includes a useridentification, receipt system 38 also generates a second order receiptin the form of a user document and forwards it directly to user system26 for display. The two paths help prevent the unauthorized manipulationof data, and help to ensure that front end system 30 receivesverification without requiring any further action by the user. Whendesired, an order receipt also can be generated and forwarded to analternate system designated in the order request, such as accountingsystem 31. This further prevents manipulation, and removes therequirement for transaction data to be stored at front end 30.

FIG. 3 depicts an illustrative method of implementing the invention.Initially, an order request is received in step S1. As noted, varioustypes of order requests can be received from numerous front end systemsand can be in various formats/protocols. Consequently, the order requestis transformed in step S2 into order data for processing. In step S3, anappropriate request handler is selected based on the type of orderrequest. The request handler then processes the order request in step S4with the assistance of an appropriate back end system. Upon completion,one or more order receipts are generated in step S5, and forwarded tothe front end system, accounting system, and/or user system in step S6.

It is understood that the present invention can be realized in hardware,software, or a combination of hardware and software. Any kind ofcomputer/server system(s)—or other apparatus adapted for carrying outthe methods described herein—is suited. A typical combination ofhardware and software could be a general purpose computer system with acomputer program that, when loaded and executed, controls computersystem 12 such that it carries out the respective methods describedherein. Alternatively, a specific use computer, containing specializedhardware for carrying out one or more of the functional tasks of theinvention, could be utilized. The present invention can also be embeddedin a computer program product, which comprises all the respectivefeatures enabling the implementation of the methods described herein,and which—when loaded in a computer system—is able to carry out thesemethods. Computer program, software program, program, or software, inthe present context mean any expression, in any language, code ornotation, of a set of instructions intended to cause a system having aninformation processing capability to perform a particular functioneither directly or after either or both of the following: (a) conversionto another language, code or notation; and/or (b) reproduction in adifferent material form.

The foregoing description of various aspects of the invention has beenpresented for purposes of illustration and description. It is notintended to be exhaustive or to limit the invention to the precise formdisclosed, and obviously, many modifications and variations arepossible. Such modifications and variations that may be apparent to aperson skilled in the art are intended to be included within the scopeof the invention as defined by the accompanying claims.

1. An order processing system, comprising: an input system having an input interface and a plurality of input handlers, wherein the input system is adapted to select one of the input handlers based on information contained within an order request received by the input interface from a user; a request system in communication with the input system, wherein the request system has a plurality of request handlers, and wherein the request system is adapted to select one of the request handlers based on the information; and a receipt system in communication with the request system, wherein the receipt system has a plurality of output handlers for generating a receipt for the order request and for transmitting the receipt to the user, and wherein the receipt system is adapted to select one of the output handlers based on the information.
 2. The system of claim 1, wherein each of the plurality of request handlers communicates with a particular, corresponding back end system.
 3. The system of claim 1, wherein a format of the generated receipt is the same as a format of the order request received by the input interface.
 4. The system of claim 1, further comprising a back end system in communication with the request system.
 5. The system of claim 4, wherein the back end system includes at least one of a management system and a payment system.
 6. The system of claim 1, wherein the information in the order request includes format information and type information, wherein the one input handler and the one output handler are selected based on the format information, and wherein the one request handler is selected based on the type information.
 7. A method of processing an order, comprising: receiving an order request at an input system; selecting one of a plurality of request handlers in a request system based on a type of the order request; processing the order request using the selected request handler; and generating an order receipt based on the processed order request at a receipt system.
 8. The method of claim 7, further comprising: providing a front end system; generating the order request using the front end system based on input from a user; and forwarding the order request to the input system from the front end system.
 9. The method of claim 8, further comprising forwarding the order receipt to the front end system from the receipt system.
 10. The method of claim 7, further comprising: including a user identification in the order request; and forwarding the order receipt to a user system based on the user identification.
 11. The method of claim 7, further comprising: selecting one of a plurality of input handlers in the input system based on a format of the order request; transforming the order request into order data using the selected input handler; and forwarding the order data to the request system from the input system.
 12. The method of claim 7, wherein generating an order receipt includes: selecting one of a plurality of receipt format handlers based on a format of the order request; and generating the order receipt using the selected receipt format handler, wherein the order receipt is formatted the same as the order request.
 13. The method of claim 7, wherein the processing step includes: obtaining payment information from the user; and verifying payment based on the payment information.
 14. A computer program product comprising a computer useable medium having computer readable program code embodied therein for processing an order, the program product comprising: program code configured to receive an order request; program code configured to select one of a plurality of request handlers based on a type of the order request; program code configured to process the order request using the selected request handler; and program code configured to generate an order receipt based on the processed order request.
 15. The computer program product of claim 14, further comprising program code configured to generate the order request, the order request including a user identification.
 16. The computer program product of claim 14, further comprising program code configured to forward the order receipt to a user system based on the user identification.
 17. The computer program product of claim 14, further comprising: program code configured to select one of a plurality of input handlers based on a format of the order request; program code configured to transform the order request into order data using the selected input handler; program code configured to select one of a plurality of receipt handlers based on a format of the order request; and program code configured to generate the order receipt using the selected receipt handler, wherein the order receipt has the same format as the order request.
 18. The computer program product of claim 14, further comprising: program code configured to obtain payment information from the user; and program code configured to verify payment based on the payment information. 